package Enea.project;

/** 
* Classe che mantiene le informazione sulle WorkUnit prodotte dal progetto.
*
* @author Davide Aversa
*/
public class WorkUnit {

    private String data;
    private long code;
    private int sizebyte;
    private int sizepu;

    private static long lastcode = 0;

    /**
    * Costruttore della classe WorkUnit.
    *
    * @param data Indica la stringa che mantiene una codifica dei dati da 
    * elaborare che verranno trasmessi al client.
    * @param sizebyte Indica la dimensione in byte dei dati da elaborare.
    * @param sizepu Indica la dimensione in unità primaria dei dati da elaborare.
    */
    public WorkUnit(String data, int sizebyte, int sizepu) {
        this.data = data;
        this.code = WorkUnit.lastcode++;
        this.sizebyte = sizebyte;
        this.sizepu = sizepu;
    }

    /**
    * Restituisce il codice della Work Unit corrente.
    *
    * @return Il codice della Work Unit.
    */
    public long getCode() { return this.code; }

    /**
    * Restituisce la codifica dei dati contenuti nella Work Unit.
    *
    * @return I dati contenuti nella Work Unit.
    */
    public String getData() { return this.data; }

    /**
    * Restituisce la dimensione in byte dei dati da elaborare.
    *
    * @return La dimensione in byte da elaborare.
    */
    public int getSizeByte() { return this.sizebyte;}

    /**
    * Restituisce la dimensione in unita primarie dei dati da elaborare.
    *
    * @return La dimensione in primary unit da elaborare.
    */
    public int getSyzePU() { return this.sizepu; }

}